<?php
/**
 * @author		João Batista Neto
 * @brief		Classes e interfaces utilitárias
 * @package		rpo.util
 */

require_once 'rpo/util/RecursiveObjectIteratorIterator.php';

/**
 * @brief	Implementação de um Iterator recursivo de Iteratores de componentes
 * @class	ObjectIterator
 */
class RecursiveComponentIteratorIterator extends RecursiveObjectIteratorIterator {
	/**
	 * @brief	Verifica se um objeto é aceitável para o Iterator antes de adicioná-lo
	 * @return	boolean
	 */
	protected function accept( IObject $object ){
		$reflection = $object->getClass();

		return $reflection->getName() == 'RecursiveComponentIterator' || $reflection->isSubclassOf( 'RecursiveComponentIterator' );
	}
}